package Modelo;

import java.util.*;



public class Socio {
	
	//Atributos de la clase Socio
	
	private String nombre;
	
	private String telefono;
	
	private String cedula;
	
	private ArrayList<Unidad> unidades;
	
	private String cooperativaPertenece;
	
	//constructor sin parametros
	


	public Socio(){
		super();
		unidades = new ArrayList<Unidad>();
	}
	
	//constructor con parametros

	public Socio(String nombre, String telefono, String cedula, ArrayList<Unidad> unidades, String cooperativaPertenece) {
		super();
		this.nombre = nombre;
		this.telefono = telefono;
		this.cedula = cedula;
		this.unidades = unidades;
		this.cooperativaPertenece = cooperativaPertenece;
	}
	
	public Socio(String nombre, String telefono, String cedula, String cooperativaPertenece) {
		super();
		this.nombre = nombre;
		this.telefono = telefono;
		this.cedula = cedula;
		this.cooperativaPertenece = cooperativaPertenece;
	}
	
	//getters y setters
	public String getCooperativaPertenece() {
		return cooperativaPertenece;
	}

	public void setCooperativaPertenece(String cooperativaPertenece) {
		this.cooperativaPertenece = cooperativaPertenece;
	}
	
	public void setNombre(String nombre){
		this.nombre = nombre;
		
	}
	
	public String getNombre(){
		return nombre;
	}
	
	public void setTelefono(String telefono){
		this.telefono = telefono;
	}
	
	public String getTelefono(){
		return telefono;
	}
	
	public void setCedula(String cedula){
		this.cedula = cedula;
	}
	
	public String getCedula(){
		return cedula;
	}
	
	public ArrayList<Unidad> getUnidades() {
		return unidades;
	}

	/**
	 * Asigna la informacion de las unidades.
	 * @param unidads ArrayList de las unidades a asignar.
	 */
	public void setUnidades(ArrayList<Unidad> unidades) {
		this.unidades = unidades;
	}
	
	//Metodos de ArrayList de recibos
		/**
		 * Metodo que permite agregar una unidad en el ArrayList.
		 * @param unidad informacion de la unidad a agregar.
		 */
		public void agregarUnidad(Unidad unidad){
			this.unidades.add(unidad);
		}
		
		/**
		 * Retorna la cantidad de unidades que tiene el ArrayList
		 */
		public int contarUnidades() {
			return this.unidades.size();
		}
		
		/**
		 * Metodo que retorna la informacion de una unidad del ArrayList de acuerdo a la posicion indicada.
		 * @param i posicion de la unidad en el ArrayList
		 * @return informacion de la unidad indicado.
		 */
		public Unidad obtenerUnidad(int i) {
			return this.unidades.get(i);
		}
		
		/**
		 * Metodo que permite buscar la informacion de un recibo en el ArrayList de acuerdo al codigo 
		 * @param codigo informacion del codigo del recibo a buscar en el ArrayList.
		 * @return la informacion del recibo en caso de encontrarlo o null en caso de no encontrar el recibo en el ArrayList
		 */
		public Unidad buscarUnidad(String placa) {
			for (int i = 0; i < contarUnidades(); i++) {
				if (obtenerUnidad(i).getPlaca().equals(placa)) {
					return obtenerUnidad(i);
				}
			}
			return null;
		}
}
